SSM Class
Contents
classdef SSM < Manifold
SSM
Spectral Submanifold Computation - this forms a subclass of the
Manifold
class and serves for the computation of SSMs.
Furthermore a variety of methods are implemented for the analysis of
the reduced dynamics on the computed SSMs, and for mapping the
results back to the manifold in the full physical system.
properties
contOptions = cocoOptions(); % Settings for continuation FRCOptions = FRCOptions(); % Settings for the computation of the forced response FRSOptions = FRSOptions();
Some methods need explicit access to the non-autonomous manifold and reduced dynamics. The coefficients which characterise these are dependent on the forcing frequency. Thus, in order to keep track of the changing coefficients when using continuation, they are stored and updated directly in the SSM class.
R_1 = []; % coefficients nonaut reduced dynamics, used in 'continuation po' W_1 = []; % nonautonomoues ssm coefficients, used in 'continuation po'
end properties (SetAccess = private) FRCInfo = struct('lvlsetTimeAut',[],'lvlsetTimeNonAut',[]) % This data structure stores the solution information: % memory consumption estimate in MB at each order % computational time estimate in seconds at each order end
Methods
methods
For the extraction of FRCs in a given parameter (forcing frequency
or amplitude) along a given range, the
extract_FRC
functions is provided:
FRC = extract_FRC(obj, parName, parRange, order)
One of the following three subroutines may be used for the
computation of these FRCs, two of them based on continuation. The
level_set
routine analytically finds the periodic
orbits for reduced dynamics on a 2D SSM.
varargout = FRC_cont_ep(obj,oid,modes,order,mFreq,parName,parRange,outdof,varargin); varargout = FRC_cont_po(obj,oid,resModes,order,parRange); [FRC] = FRC_level_set(obj, resMode, order, parName, parRange)
If a sweep of FRCs is to be computed for various forcing frequencies, the following functions may be applied. They are based on the routines presented above, and execute them for varying forcing amplitude.
varargout = SSM_epSweeps(obj,oid,run,lab,epSamps,omRange,outdof,varargin); varargout = SSM_poSweeps(obj,oid,resonant_modes,order,mFreqs,epSamp,omRange,varargin) FRCs = SSM_lvlSweeps(obj, omRange, epsSamp, ORDER)
Backbone curves of dynamical systems can be computed from the ROM on an SSM via:
BB = extract_backbone(obj,modes,order,outdof,varargin)
The resonance tongue for a given mode of a parametrically excited system, also known as Stability (Ince-Strutt) diagram, can be computed directly from the reduced dynamics. For this families of bifurcations are continued, the method is available via calling
[SD] = extract_Stability_Diagram(obj,resModes, order, omRange, epsRange, parName, p0, varargin)
For the continuation of equilibria of the reduced dynamics an SSM, the coco-based SSM-ep toolbox provides the following functionalities:
varargout = SSM_isol2ep(obj,oid,modes,order,mFreq,parName,parRange,outdof,varargin); varargout = SSM_ep2ep(obj,oid,run,lab,parName,parRange,outdof,varargin); varargout = SSM_BP2ep(obj,oid,run,lab,parName,parRange,outdof,varargin); varargout = SSM_ep2SN(obj,oid,run,lab,parRange,outdof,varargin); varargout = SSM_ep2HB(obj,oid,run,lab,parRange,outdof,varargin);
For the continuation of periodic orbits of the reduced dynamics an SSM, the coco-based SSM-po toolbox provides the following functionalities:
SSM_isol2po(obj,oid,run,lab,initsol,parName,parRange,outdof,varargin); SSM_HB2po(obj,oid,run,lab,parName,parRange,outdof,varargin); SSM_po2po(obj,oid,run,lab,parName,parRange,outdof,varargin); SSM_BP2po(obj,oid,run,lab,parName,parRange,outdof,varargin); SSM_po2TR(obj,oid,run,lab,parRange,outdof,varargin); SSM_po2SN(obj,oid,run,lab,parRange,outdof,varargin); SSM_po2PD(obj,oid,run,lab,parRange,outdof,varargin);
For the continuation of invariant tori of the reduced dynamics an SSM, the tor/coco-based SSM-tor toolbox provides the following functionalities:
SSM_TR2tor(obj,oid,run,lab,parName,parRange,outdof,varargin); SSM_tor2tor(obj,oid,run,lab,parName,parRange,outdof,varargin); SSM_BP2tor(obj,oid,run,lab,parName,parRange,outdof,varargin); varargout = auto_po_solver(obj,R_0,oid,t0,p0,coordinates);
Options for the use of parallel computation are set via the following two functions.
activate_parallel(obj,varargin); deactivate_parallel(obj);
extract frequency response surface
extract_FRS(obj,oid,modes,order,mFreq,parRange,outdof,optdof,scale_state,scale_obs,varargin); % extract ridges and trenches along a frequency response surface % without computing it varargout = extract_ridges_trenches(obj,oid,resonant_modes,order,mFreqs,parRange,outdof,optdof,varargin);
end
The core functionalities for the continuation of reduced dynamics, which are used by the library of functions provided for the user, consists of the following three routines:
methods (Access = protected) FRC = SSM_cont_ep(obj,type,oid,run,lab,parName,parRange,outdof,varargin); varargout = SSM_cont_po(obj,type,oid,run,lab,initsol,parName,parRange,outdof,varargin); varargout = SSM_cont_tor(obj,type,oid,run,lab,parName,parRange,outdof,varargin) end
end